package com.itheima.homework;

import java.util.Scanner;

/**
 * @Author 王加鑫
 * @Date 2021/4/28 12:39
 * @Version 1.0
 * 身份证号码题目优化逻辑思维
 */
public class IdCardTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入身份证号码：");
        String s = sc.nextLine();
        System.out.println(idTest(s));

    }

    /*
    方法的三要素:
    方法名: IdTest
    参数列表: 字符串
    返回值类型: boolean
    采用逆向思维的逻辑
     */
    public static boolean idTest(String s){
        /*
        只有字符串长度不为18或者开头为0才为假
         */
        if(s.length()!=18 || s.startsWith("0")){
            return false;
        }
        for (int i = 0; i < s.length()-1; i++) {
            /*
            只有前17位不为数字才为假
             */
            if((s.charAt(i) > '9' || s.charAt(i) < '0')){
                return false;
            }
        }

        /*
        只有最后一位数字不为数字并且不是大写字母X才为假
         */
        if((s.charAt(s.length()-1) > '9' || s.charAt(s.length()-1) < '0') && !s.endsWith("X")){
            return false;
        }
        return true;
    }

}




